package descubreperu.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import descubreperu.excepcion.DAOExcepcion;
import descubreperu.modelo.Administrador;
import descubreperu.modelo.Auspiciador;
import descubreperu.modelo.Usuario;
import descubreperu.util.ConexionBD;

public class AdministradorDAO {

	
	
	public void insertar(Administrador vo) throws DAOExcepcion {
		System.out.println("AdministradorDAO: insertar(Auspiciador vo)");
		System.out.println(vo.getNombre());
		String query = "INSERT INTO administrador(nombre, paterno, materno, sexo, dni, celular, email) VALUES (?,?,?,?,?,?,?)";
		Connection con = null;
		PreparedStatement stmt = null;
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			
			stmt.setString(1, vo.getNombre());
			stmt.setString(2, vo.getPaterno());
			stmt.setString(3, vo.getMaterno());
			stmt.setString(4, vo.getSexo());
			stmt.setString(5, vo.getDni());
			stmt.setString(6, vo.getCelular());
			stmt.setString(7, vo.getEmail());
			
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} 
	}
	
	
	public Administrador obtener(String usuario) throws DAOExcepcion {
		System.out.println("AdministradorDAO: obtener(String usuario)");
		Administrador vo = new Administrador();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			String query = "select nombre, paterno, materno, sexo, dni, celular, email from administrador where nombre=?";
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			stmt.setString(1, usuario);
			rs = stmt.executeQuery();
			if (rs.next()) {
				vo.setNombre(rs.getString(1));
				vo.setPaterno(rs.getString(2));
				vo.setMaterno(rs.getString(3));
				vo.setSexo(rs.getString(4));
				vo.setDni(rs.getString(5));
				vo.setCelular(rs.getString(6));
				vo.setEmail(rs.getString(7));
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} 
		return vo;
	}


	public Administrador actualizar(Administrador modelo) throws DAOExcepcion {
		String query = "UPDATE administrador SET nombre=?, paterno=?, materno=?, sexo=?, dni=?, celular=?, email=? WHERE nombre= nombre";
		Connection con = null;
		PreparedStatement stmt = null;
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);			
			stmt.setString(1, modelo.getNombre());
			stmt.setString(2, modelo.getPaterno());
			stmt.setString(3, modelo.getMaterno());
			stmt.setString(4, modelo.getSexo());
			stmt.setString(5, modelo.getDni());
			stmt.setString(6, modelo.getCelular());		
			stmt.setString(7, modelo.getEmail());
	

			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo actualizar");
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		}
		return modelo;
	}
		
		
	}
